n, m = map(int, input().split())

arr = []  # 数据存储 格式: [(id, score), ...]

for i in range(n):
    arr.append(
        list(map(int, input().split()))             # 读入信息
    )

arr = sorted(arr, key=lambda x:x[1], reverse=True)  # 按分数排序

pos = int(m * 1.5) - 1          # 分数线的位置下标 (确保了分数线不会超出总数 n)
admission_line = arr[pos][1]    # 分数线

while pos < len(arr) and arr[pos][1] == admission_line:
    pos += 1                    # pos 下标最终会停在分数线的后一个位置

print(admission_line, pos)      # !输出 分数线 和 对应的人数

selected = arr[:pos]            # 切分出入选者的列表, 方便操作

# 定义一个 lambda, 方便输出时的操作
printList = lambda l : [print(i[0], i[1]) for i in l]

prev = 0    # 记录相同分数区间的起始位置
i = 1       # 用于迭代相同分数的元素
for i in range(len(selected)):
    # 迭代到了分数不同的元素, 则将之前的一段按 id 排序后输出
    if selected[i][1] != selected[prev][1]:
        printList(
            sorted(selected[prev:i], key=lambda x:x[0], reverse=False)
        )
        prev = i

# 善后处理
printList(
    sorted(selected[prev:], key=lambda x:x[0], reverse=False)
)
